Modern computer systems rely on different types of storage, such as memory systems, disk systems etc. In the current state of the art, these systems come with a fixed capacity, e.g., a memory module may have the size of 1 GB, or a disk may have the size of 1 TB. The size of the storage module can generally not be changed once the system that is using the memory is running.
With the growth in memory storage device technologies such as PCM, one can create storage modules which can be put into one or more modes, where different modes can have different capacity. However, such modules in the current state of the art do not exist. For example, the SLC or MLC modes of commercially available NAND flash are designed as part of the product feature. Meaning thereby customers either buy SLC NAND or MLC NAND products off the shelf and do not have the flexibility of changing the mode. This means that system architect need to estimate the best mode (i.e., capacity) before the system is put into actual operation and the mode cannot be changed during the operation since storage systems currently do not have re-configurability.
These early estimates can sometimes be incorrect, i.e., hard to predict the new workloads since they are evolving over time. In order to adapt system to emerging workloads in a wider application space, it is desirable to have a storage module which can adjust its mode dynamically to provide for more storage and flexibility during the operation of the system. At a minimum, we would like to be able to adjust the capacity of the memory system in offline mode by powering it down and repowering it again for mode switching.